A virtualization technology enables plural virtualized computers to operate on a single physical computer. The computers virtualized by the virtualization technology may be referred to as “virtual computers” or “virtual machines”. In the computer in which such virtualization technology is introduced, a device implemented on or connected to the computer may be shared by the plural virtual machines (which may be referred to as “VMs”) operating on the computer. In this case, the virtual machines use a device driver in order to utilize the device.
In recent years, a “split driver” technology has been proposed whereby a device driver is separated into a front-end and a back-end which are implemented on the virtual machines so that the device or the corresponding device driver can be commonly utilized by the virtual machines. In this technology, a back-end device driver that actually controls the device is implemented on a dedicated virtual machine. When the other virtual machines wish to utilize the device, they do so via the dedicated virtual machine in which the device driver is implemented. By introducing such technology, the burden of developing drivers for the individual virtual machines can be reduced.
In a computer in which such virtualization technology is introduced, in case a device driver error occurs, error recovery may be attempted by rebooting the entire virtualized system including a virtual machine monitor.
A technology is also known in which a user logic partition utilized by a user and an I/O logic partition including an I/O device are independently configured so that the user logic partition can be prevented from being affected by an I/O device error. In another known technology, error occurrence information from guest OS's are centrally collected at a host OS as an error managing VM. In another known technology, in the event of an error in a constituent element of a system, a substitute constituent element is located and caused to perform a substitute process for the constituent element having the error. In another technology, a hypervisor monitors a physical I/O device for development of error. Upon occurrence of error, a managing virtual computer is notified and then performs an error recovery process for the physical I/O device.
Patent Document 1: Japanese Laid-open Patent Publication No. 2006-85543
Patent Document 2: Japanese Laid-open Patent Publication No. 2009-151509
Patent Document 3: Japanese Laid-open Patent Publication No. 06-230992
Patent Document 4: Japanese Laid-open Patent Publication No. 2008-186209
In the above method whereby the entire virtualized system is rebooted, application programs or virtual machines that are not related to the erroneous device driver are terminated and rebooted. Rebooting of the virtualized system as a whole also takes a very long time.
Further, in the case of the above structure of the device driver in a virtualized system, an appropriate range of virtual machines for the device driver error recovery process and the error recovery method may vary depending on the configuration of the virtual machines, the type of device, or the type of error. Thus, it is not easy to detect a device driver error or to limit the extent of the error recovery process such that processes not related to the error are not affected.